А Расходящаяся история возникает, когда хронология репозитория разделяется на несколько нелинейных путей. Это обычно происходит, когда ветка функции (например, news-hotfix) и основная ветка развиваются независимо друг от друга после общего предка. Это разветвление создает сложную внутреннюю структуру снимков.
1. Триггер разветвления
Расхождение начинается, когда разработчик выполняет git commit на локальной ветке, в то время как верхняя ветка также получает новые снимки (например, обновление файла index.html). Это создает топологический разрыв где ваша работа над about/me.html больше не основана на последнем состоянии проекта.
2. Стоимость нелинейности
Хотя Git управляет расхождением через рекурсивные слияния, результатом часто становится загромождённость историей с коммитами «Слияние ветки...». Это делает историю репозитория сложной для аудита, так как последовательность git add и git commit операций по файлам, таким как news-2.html и about/me.html становится визуально переплетёнными.
3. Разрыв между снимками
Каждый коммит создаёт полный снимок. Когда история расходится, внутренняя структура внутренняя структура вашей ветки функции не имеет контекста параллельных изменений, выполненных в других местах, что требует стратегии, такой как перебазирование, чтобы привести хронологию проекта в порядок.